The present invention relates to numerical control systems for controlling machine tools and the like according to a sequence of program instructions, and in particular, to a numerical control system for use in cutting pockets with irregular perimeters.
Numerical control systems are computing devices adapted for the real-time control of machine tools. A numerical controller receives a set of coded instructions forming a "part program". The instructions of the part program describe a sequence of machining operations to be performed to create a finished machine part. The numerical controller converts the instructions to a series of electrical signals which control servo or stepper motors attached to a machine tool to move the tool appropriately or which control special accessories, such as tool changers, to allow automated control of machine setup operations traditionally performed by hand.
For example, in the case of a numerical controller operating a vertical milling machine, the instructions of the part program may include "setup" instruction which specify, for example, the type of milling tool, the rate of feed of the tool through the material being machined, the spindle speed at which the tool rotates, and other general parameters of the machining operation. Other instructions referred to herein as "positioning instructions" control the actual movement of the tool over the surface of the part during the actual machining operation. For complex parts involving many discrete movements of the tool, these positioning instructions comprise the majority of the instructions for the part program.
The manageability of a part program decreases with increasing numbers of positioning instructions. This is true primarily because of the difficulty of writing and editing part programs that are extremely lengthy. Memory limitations within the numerical controller, however, also make it desirable that the number of positioning instructions in a part program be limited.
For certain shapes, notably those that are geometrically regular, such as circular or square pockets cut in a part face, the length of the part program can be minimized by the use of high-level instructions which incorporate only key dimensions of the pocket and generate the necessary positioning instructions on a real-time basis. Thus, for cutting a circular pocket, the depth and radius alone might be specified by the programmer and coded into the part program. During machining the precise tool path is calculated mathematically from these critical dimensions in real-time, eliminating the programming and storing of a large number of positioning instructions. Because explicit positioning instructions are eliminated, the length and complexity of the part program can be substantially reduced.
Provided the critical data used to define the pocket shape is carefully selected, the pocket described by the high-level instruction, may be readily translated in space, rotated or scaled in size without the need for additional calculation by the programmer. Clearly the programming time for each pocket is reduced to the extent that the writing of explicit positioning instructions by the programmer can be avoided.
This approach of using high-level instructions is well adapted to the cutting of pockets whose perimeters are circular or well defined regular polygons. In these cases, the optimal tool path is easily determined, predictable and may be generated by simple mathematical operations. Unfortunately, high-level instructions are not easily adapted to the creation of irregular pockets, i.e. pockets whose perimeters are made up of irregular straight and curved line segments. There is no simple and generalizable mathematical description for the path necessary to remove material from the interior of an irregular pocket. This is particularly evident when the perimeter of the pocket is concave and when the efficient removal of material from the interior of the pocket will produce multiple islands of uncut material.